<?php
namespace App\Api;

use PhalApi\Api;
use App\Domain\Guide as Domain_Guide;
use App\Domain\Home as Domain_Home;
header('Access-Control-Allow-Origin: *'); // 允许所有域名访问
header('Content-Type: application/json');
/**
 * 首页
 */

class Home extends Api {

	public function getRules() {
        return array(
            'getHot' => array(
                'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
                'sex' => array('name' => 'sex', 'type' => 'int', 'default'=>'0', 'desc' => '性别，0全部，1男，2女'),
				'type' => array('name' => 'type', 'type' => 'int','default'=>'0', 'desc' => '通话类型，0全部，1视频，2语音'),
				'p' => array('name' => 'p', 'type' => 'int', 'default'=>'0', 'desc' => '页码'),
            ),
            'getAttention' => array(
				'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
				'token' => array('name' => 'token', 'type' => 'string', 'default'=>'' ,'desc' => '用户Token'),
				'p' => array('name' => 'p', 'type' => 'int', 'default'=>'1' ,'desc' => '页数'),
			),
            
            'getNearby' => array(
				'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
				'lng' => array('name' => 'lng', 'type' => 'string', 'default'=>'' ,'desc' => '经度'),
				'lat' => array('name' => 'lat', 'type' => 'string', 'default'=>'' ,'desc' => '纬度'),
				'p' => array('name' => 'p', 'type' => 'int', 'default'=>'1' ,'desc' => '页数'),
			),
            'search' => array(
				'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
				'key' => array('name' => 'key', 'type' => 'string', 'default'=>'' ,'desc' => '关键词'),
				'p' => array('name' => 'p', 'type' => 'int', 'default'=>'1' ,'desc' => '页数'),
			),
			'getNew' => array(
				'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
				'p' => array('name' => 'p', 'type' => 'int', 'default'=>'1' ,'desc' => '页数'),
			),
			 'profitList'=>array(
                'uid' => array('name' => 'uid', 'type' => 'int','min'=>1, 'desc' => '用户ID'),
                'p' => array('name' => 'p', 'type' => 'int', 'default'=>'1' ,'desc' => '页数'),
                'type' => array('name' => 'type', 'type' => 'string', 'default'=>'day' ,'desc' => '参数类型，day表示日榜，week表示周榜，month代表月榜，total代表总榜'),
            ),
			'consumeList'=>array(
                'uid' => array('name' => 'uid', 'type' => 'int','min'=>1, 'desc' => '用户ID'),
                'p' => array('name' => 'p', 'type' => 'int', 'default'=>'1' ,'desc' => '页数'),
                'type' => array('name' => 'type', 'type' => 'string', 'default'=>'day' ,'desc' => '参数类型，day表示日榜，week表示周榜，month代表月榜，total代表总榜'),
            ),
			'getSlide'=>array(

            ),
            

        );
	}
	
    /**
     * 网站信息
     * @desc 用于获取网站基本信息
     * @return int code 操作码，0表示成功
     * @return array info 
     * @return string info[0].site_name 网站名称
     * @return string info[0].name_votes 收益币名称
     * @return string info[0].name_coin 消费币名称
     * @return string info[0].apk_ver APK版本号
     * @return string info[0].apk_des APK更新说明
     * @return string info[0].apk_url APK下载链接
     * @return string info[0].ipa_ver IPA版本号
     * @return string info[0].ios_shelves IPA上架版本号
     * @return string info[0].ipa_des IPA更新说明
     * @return string info[0].ipa_url IPA下载链接
     * @return array info[0].login_type 登录方式
     * @return array info[0].share_type 分享方式
     * @return array info[0].levellist 等级列表
     * @return string info[0].levellist[].level 等级
     * @return string info[0].levellist[].thumb 等级图标
     * @return array info[0].levelanchorlist 主播等级列表
     * @return string info[0].levelanchorlist[].level 等级
     * @return string info[0].levelanchorlist[].thumb 等级图标
     * @return string info[0].im_tips 等级图标
     * @return string msg 提示信息
     */
	public function getConfig() {
        $rs = array('code' => 0, 'msg' => '', 'info' => array());
		
		
        
        $info=\App\getConfigPub();
        unset($info['site_url']);
        unset($info['site_seo_title']);
        unset($info['site_seo_keywords']);
        unset($info['site_seo_description']);
        unset($info['copyright']);
        unset($info['qr_url']);
        
        $info_pri=\App\getConfigPri();
        
        $info['login_type']=$info_pri['login_type'];
        $info['share_type']=$info_pri['share_type'];
        
        $level=\App\getLevelList();
        foreach($level as $k=>$v){
            $v['level']=(string)$v['level'];
            unset($v['id']);
            unset($v['level_up']);
            unset($v['levelname']);
            $level[$k]=$v;
        }
        $info['levellist']=$level;
        
        $levelanchor=\App\getLevelanchorList();
        foreach($levelanchor as $k=>$v){
            $v['level']=(string)$v['level'];
            unset($v['id']);
            unset($v['level_up']);
            unset($v['levelname']);
            $levelanchor[$k]=$v;
        }
        $info['levelanchorlist']=$levelanchor;
		
		
		$liveclass = \App\getLiveClass();
		$info['liveclass']=$liveclass;
        
        /* 聊天室群组 */
        $info['full_group_id']='';
        $full_group_id=$info_pri['im_full_group_id'];
        if($full_group_id){
            $api=\App\getTxRestApi();
            
            $ret = $api->group_get_group_info2(array('0'=>$full_group_id),[],[],[]);
            //file_put_contents(API_ROOT.'/Runtime/full_group.txt',date('y-m-d H:i:s').'提交参数信息 ret1:'.json_encode($ret)."\r\n",FILE_APPEND);
            $info['full_group_id'] = $ret['GroupInfo'][0]['GroupId'];

            if($ret['GroupInfo'][0]['ErrorCode']){
                $ret = $api->full_group_create($full_group_id);
                 //file_put_contents(API_ROOT.'/Runtime/full_group.txt',date('y-m-d H:i:s').'提交参数信息 ret2:'.json_encode($ret)."\r\n",FILE_APPEND);
                if($ret['ActionStatus']!='OK'){
                    $ret = $api->full_group_create($full_group_id);
                     //file_put_contents(API_ROOT.'/Runtime/full_group.txt',date('y-m-d H:i:s').'提交参数信息 ret3:'.json_encode($ret)."\r\n",FILE_APPEND);
                }
                $info['full_group_id'] = $ret['GroupId'];
            } 
        }
		
		
		/* 引导页 */
        $domain = new Domain_Guide();
		$guide_info = $domain->getGuide();
        
        $info['guide']=$guide_info;
        
        /* 私信提示 */
        $im_tips='';
        $im_teenager_tips='';
        $im_limit=$info_pri['im_limit'];
        if($im_limit>0){

            $im_tips=\PhalApi\T('免费{im_limit}条/天，开通会员无限畅聊',['im_limit'=>$im_limit]);
            $im_teenager_tips=\PhalApi\T('青少年模式下，每日限定{im_limit}条',['im_limit'=>$im_limit]);
        }
        $info['im_tips']=$im_tips;
        $info['im_teenager_tips']=$im_teenager_tips;
        
        $rs['info'][0] = $info;
		
        return $rs;
	}
	
	
	/**
     * 获取过滤词汇
     * @desc 用于获取聊天过滤词
     * @return int code 操作码，0表示成功
     * @return array info 
     * @return array info[0] 配置信息

     * @return string msg 提示信息
     */
    public function getFilterField() {
        $rs = array('code' => 0, 'msg' => '', 'info' => array());

        $sensitive_words=\App\getcaches('sensitive_words');

        if($sensitive_words){

            $rs['info']=$sensitive_words;

        }else{

            $configpri = \App\getConfigPri();

            if($configpri['sensitive_words']){
                $rs['info'] =explode(',',$configpri['sensitive_words']);
            }

            \App\setcaches("sensitive_words",$rs['info']);
        }

        return $rs;
    }
	
	/**
     * 轮播
     * @desc 用于轮播和榜单信息
     * @return int code 操作码，0表示成功
     * @return array info 
     * @return array info[0].slide 轮播
     * @return string info[0].slide[].image 图片
     * @return string info[0].slide[].url 链接
     * @return array info[0].profittop 收益（魅力）榜
     * @return array info[0].consumetop 消费（土豪）榜

     * @return string msg 提示信息
     */
	public function getSlide() {
        $rs = array('code' => 0, 'msg' => '', 'info' => array());
        
        $domain = new Domain_Home();
        $where="status='1' and slide_id='1' ";
        $slide = $domain->getSlide($where);

		//收益（魅力）榜
		$profittop = $domain->getProfittop();
		//消费（土豪）榜
        $consumetop=$domain->getConsumetop();
        
        $info['slide']=$slide;
		$info['profittop']=$profittop;
        $info['consumetop']=$consumetop;
        
        
        $rs['info'][0] = $info;
		
        return $rs;
	}


    /**
     * 推荐
     * @desc 用于获取首页信息
     * @return int code 操作码，0表示成功
     * @return array info 
     * @return array info[0].slide 轮播
     * @return string info[0].slide[].image 图片
     * @return string info[0].slide[].url 链接
     * @return array info[0].list 列表
     * @return string info[0].list[].online 状态，0离线，1勿扰，2在聊，3在线
     * @return string info[0].list[].isvoice 语音开关，0关，1开
     * @return string info[0].list[].voice_value 语音价格
     * @return string info[0].list[].isvideo 视频开关，0关，1开
     * @return string info[0].list[].video_value 视频价格，0关，1开
     * @return string info[0].list[].thumb 封面
     * @return string info[].can_sayhi 是否可搭讪 0否 1是
     * @return string msg 提示信息
     */
	public function getHot() {
        $rs = array('code' => 0, 'msg' => '', 'info' => array());
		
		$uid=\App\checkNull($this->uid);
        $sex=\App\checkNull($this->sex);
        $type=\App\checkNull($this->type);
        $p=\App\checkNull($this->p);
		
        
        $domain = new Domain_Home();
		$where="status='1' and slide_id='1' ";
        $slide = $domain->getSlide($where);
        
		//收益（魅力）榜
		$profittop = $domain->getProfittop();
		//消费（土豪）榜
        $consumetop=$domain->getConsumetop();
        
        $list= $domain->getList($uid,$sex,$type,$p);
        
        $info['slide']=$slide;
        $info['list']=$list;
		$info['profittop']=$profittop;
        $info['consumetop']=$consumetop;
        
        
        $rs['info'][0] = $info;
		
        return $rs;
	}


    /**
     * 关注
     * @desc 用于获取用户关注的主播
     * @return int code 操作码，0表示成功
     * @return array info 
     * @return string info[].online 状态，0离线，1勿扰，2在聊，3在线
     * @return string info[].isvoice 语音开关，0关，1开
     * @return string info[].voice_value 语音价格
     * @return string info[].isvideo 视频开关，0关，1开
     * @return string info[].video_value 视频价格，0关，1开
     * @return string info[].thumb 封面
     * @return string info[].can_sayhi 是否可搭讪 0否 1是
     * @return string msg 提示信息
     */
	public function getAttention() {
        $rs = array('code' => 0, 'msg' => '', 'info' => array());
        
        $uid=\App\checkNull($this->uid);
        $token=\App\checkNull($this->token);
        $p=\App\checkNull($this->p);
        
        $checkToken=\App\checkToken($uid,$token);
		if($checkToken==700){
			$rs['code'] = $checkToken;
			$rs['msg'] = \PhalApi\T('您的登陆状态失效，请重新登陆！');
			return $rs;
		}
        
        
        $domain = new Domain_Home();
        $list= $domain->getAttention($uid,$p);
        
        $rs['info'] = $list;
		
        return $rs;
	}

    /**
     * 附近
     * @desc 用于根据经纬度获取主播
     * @return int code 操作码，0表示成功
     * @return array info 
     * @return string info[].online 状态，0离线，1勿扰，2在聊，3在线
     * @return string info[].isvoice 语音开关，0关，1开
     * @return string info[].voice_value 语音价格
     * @return string info[].isvideo 视频开关，0关，1开
     * @return string info[].video_value 视频价格，0关，1开
     * @return string info[].thumb 封面
     * @return string info[].\PhalApi\DIstance 距离
     * @return string info[].can_sayhi 是否可搭讪 0否 1是
     * @return string msg 提示信息
     */
	public function getNearby() {
        $rs = array('code' => 0, 'msg' => '', 'info' => array());
        
        $uid=\App\checkNull($this->uid);
        $lng=\App\checkNull($this->lng);
        $lat=\App\checkNull($this->lat);
        $p=\App\checkNull($this->p);
        
        if($lng=='' || $lat==''){
            return $rs;
        }

        $domain = new Domain_Home();
        $list= $domain->getNearby($uid,$lng,$lat,$p);
        
        $rs['info'] = $list;
		
        return $rs;
	}

	/**
     * 搜索
     * @desc 用于首页搜索主播
     * @return int code 操作码，0表示成功
     * @return array info 会员列表
     * @return string info[].id 用户ID
     * @return string info[].user_nickname 用户昵称
     * @return string info[].avatar 头像
     * @return string info[].sex 性别
     * @return string info[].signature 签名
     * @return string info[].level 等级
     * @return string info[].fans 粉丝数
     * @return string info[].can_sayhi 是否可搭讪 0否 1是
     * @return string msg 提示信息
     */
    public function search() {
        $rs = array('code' => 0, 'msg' => '', 'info' => array());
		
		$uid=\App\checkNull($this->uid);
		$key=\App\checkNull($this->key);
		$p=\App\checkNull($this->p);
		if($key==''){
			$rs['code'] = 1001;
			$rs['msg'] = \PhalApi\T("请填写关键词");
			return $rs;
		}
		
        $domain = new Domain_Home();
        $info = $domain->search($uid,$key,$p);

        $rs['info'] = $info;

        return $rs;
    }
    /**
     * 最新
     * @desc 用于获取最新认证的用户列表
     * @return int code 操作码，0表示成功
     * @return array info 
     * @return string info[].online 状态，0离线，1勿扰，2在聊，3在线
     * @return string info[].isvoice 语音开关，0关，1开
     * @return string info[].voice_value 语音价格
     * @return string info[].isvideo 视频开关，0关，1开
     * @return string info[].video_value 视频价格，0关，1开
     * @return string info[].thumb 封面
     * @return string info[].can_sayhi 是否可搭讪 0否 1是
     * @return string msg 提示信息
     */
	public function getNew() {
        $rs = array('code' => 0, 'msg' => '', 'info' => array());
        
        $uid=\App\checkNull($this->uid);
        $p=\App\checkNull($this->p);
        
        $domain = new Domain_Home();
        $list= $domain->getNew($uid,$p);
        
        $rs['info'] = $list;
		
        return $rs;
	}
     /**
     * 收益榜单(魅力榜)
     * @desc 获取收益榜单
     * @return int code 操作码 0表示成功
     * @return string msg 提示信息 
     * @return array info
     * @return string info[0]['user_nickname'] 主播昵称
     * @return string info[0]['avatar_thumb'] 主播头像
     * @return string info[0]['totalcoin'] 主播钻石数
     * @return string info[0]['uid'] 主播id
     * @return string info[0]['levelAnchor'] 主播等级
     * @return string info[0]['isAttention'] 是否关注主播 0 否 1 是
     **/
    
    public function profitList(){
        $rs = array('code' => 0, 'msg' => '', 'info' => array());
        $uid=\App\checkNull($this->uid);
        $p=\App\checkNull($this->p);
        $type=\App\checkNull($this->type);
        $domain=new Domain_Home();
        $res=$domain->profitList($uid,$type,$p);

        $rs['info']=$res;
        return $rs;
    }
	
	/**
     * 消费（土豪）榜单
     * @desc 获取消费榜单
     * @return int code 操作码 0表示成功
     * @return string msg 提示信息 
     * @return array info
     * @return string info[0]['user_nickname'] 用户昵称
     * @return string info[0]['avatar_thumb'] 用户头像
     * @return string info[0]['totalcoin'] 用户钻石数
     * @return string info[0]['uid'] 用户id
     * @return string info[0]['levelAnchor'] 用户等级
     * @return string info[0]['isAttention'] 是否关注用户 0 否 1 是
     **/
    
    public function consumeList(){
        $rs = array('code' => 0, 'msg' => '', 'info' => array());
        $uid=\App\checkNull($this->uid);
        $p=\App\checkNull($this->p);
        $type=\App\checkNull($this->type);
        $domain=new Domain_Home();
        $res=$domain->consumeList($uid,$type,$p);

        $rs['info']=$res;
        return $rs;
    }
    
    
    
}
